home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 23 / Amiga Format AFCD23 (Feb 1998, Issue 107).iso / +look_here_1st!+ / reader_requests / zkick301 / kickcopy.asm < prev    next >
Assembly Source File  |  1997-11-28  |  945b  |  78 lines

  1. *
  2. *    Zkick V3.01 -- Copyright (C) 1991 by Daniel Zenchelsky
  3. *
  4. *        This program may be freely copied, as long as all copyright
  5. *        notices are left intact and unchanged.
  6. *
  7.  
  8.     SECTION    code
  9.  
  10.     NOLIST
  11.     INCLUDE "zkick.i"
  12.     LIST
  13.     
  14.     XDEF    _KickCopy
  15.     XDEF    loop
  16.  
  17.     XREF    _LVOSuperState
  18.     XREF    _LVODisable
  19.     XREF    _LVOCopyMem
  20.  
  21.     XREF    _NumBufs
  22.     XREF    _BufSize
  23.     XREF    _StartKick
  24.     XREF    _EndKick
  25.     XREF    _MemArray
  26.  
  27.     XREF Reboot
  28.     
  29.     XREF KickPatch
  30.  
  31.     XREF _NORESET
  32.      XREF _PRINT
  33.     XREF _LOADC0
  34.  
  35. _KickCopy:
  36.  
  37.     PUTMSG <'KickCopy'>    
  38.  
  39.     movea.l $4,a6
  40.     jsr _LVODisable(a6)
  41.     jsr _LVOSuperState(a6)
  42.  
  43.  
  44.     tst.l _LOADC0
  45.     bne.s done
  46.  
  47.     lea.l _MemArray,a2
  48.     movea.l _StartKick,a3
  49.  
  50. loop:
  51.     cmp.l _EndKick,a3
  52.     bgt.s done
  53.     move.l (a2),a0
  54.     move.l a3,a1
  55.     move.l _BufSize,d0
  56.     jsr _LVOCopyMem(a6)
  57.     add.l #4,a2
  58.     add.l _BufSize,a3
  59.     jmp loop
  60.  
  61. done:
  62.     jsr KickPatch
  63.     tst.l _NORESET
  64.     bne.s skipreboot
  65.  
  66.     jmp Reboot
  67.  
  68. skipreboot:
  69.  
  70.     PUTMSG <'skipreboot'>
  71.  
  72.     move.l _StartKick,a0
  73.     move.l 4(a0),a0
  74.     jmp (a0)
  75.  
  76.     END
  77.  
  78.